!ABCIncludeFile(COS_OPTIONS)

!*------------------------------------------------------------
!*
!*  Project:        Clarion Open Source Project
!*                  http://clarion.googlecode.com/
!*
!*  Module:         Class cosOptions cos_Options.inc
!*  Created:        10/04/2008 11:18PM
!*
!*  The MIT License
!*
!*  Copyright (c) 2008 Mark W. Geisinger
!*
!*  Permission is hereby granted, free of charge, to any person obtaining a copy
!*  of this software and associated documentation files (the "Software"), to deal
!*  in the Software without restriction, including without limitation the rights
!*  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
!*  copies of the Software, and to permit persons to whom the Software is
!*  furnished to do so, subject to the following conditions:
!*
!*  The above copyright notice and this permission notice shall be included in
!*  all copies or substantial portions of the Software.
!*
!*  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
!*  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
!*  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
!*  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
!*  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
!*  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
!*  THE SOFTWARE.
!*
!*  Comments:
!*
!*------------------------------------------------------------
!*
!*  History:    10/05/2008  v1.0.0.0 release
!*
!*              10/7/2008   v1.0.0.1 release to tag template change
!*
!*              10/10/2008  v1.0.0.2 corrected the field count in .Init by
!*                          decrementing FieldCount after the loop
!*
!*------------------------------------------------------------

omit( '_ENDOFINCLUDE_', _COS_OPTIONS_INC_ )

_COS_OPTIONS_INC_       equate(1)

cosOptions         class, type, module('cos_Options.clw'), link('cos_Options.clw', _ABCLinkMode_), dll(_ABCDllMode_)

rgOpts              &group, private
szFileName          &cstring, private
FieldCount          long, private    ! number of group fields
DebugOn             long, private

Init                procedure( *group groupIn, long Debug = 0 ), virtual
Init                procedure( *group groupIn, *cstring szFileNameIn, long Debug = 0 ), virtual
IsFlag              procedure( long FieldIndex, long Mask ), long
SetFlag             procedure( long FieldIndex, long Mask ), long
ClearFlag           procedure( long FieldIndex, long Mask ), long
ValueSet            procedure( long FieldIndex, ? ValueIn ), long
ValueGet            procedure( long FieldIndex, *? ValueOut ), long
DebugOut            procedure( string DebugMsg ), virtual
FieldCheckSanity    procedure( long FieldIndex ), long
FlagCheckSanity     procedure( long FieldIndex, long Mask, ? FlagField ), long
                        end ! class

! _ENDOFINCLUDE_
